<TagAttribute("sky","sky ","????","????",1,208)>
Public Class SKY_TAG
Inherits HaloTag
Public Const Extension as String = "sky"
Public Const FourCC as String = "sky "
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 1
Public Const HeaderLength as Integer = 208

''' <summary>
''' 
''' </summary>
<TagField("model", 16, 10)>
Public model as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("animation_graph", 16, 10)>
Public animation_graph as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding as Byte()

''' <summary>
''' the indoor ambient light color
''' </summary>
<TagField("indoor ambient radiosity color", 3, 2)>
Public indoor_ambient_radiosity_color as Single()

''' <summary>
''' the indoor ambient light power from 0 to infinity
''' </summary>
<TagField("indoor ambient radiosity power", 1, 0)>
Public indoor_ambient_radiosity_power as Single

''' <summary>
''' the outdoor ambient light color
''' </summary>
<TagField("outdoor ambient radiosity color", 3, 2)>
Public outdoor_ambient_radiosity_color as Single()

''' <summary>
''' the outdoor ambient light power from 0 to infinity
''' </summary>
<TagField("outdoor ambient radiosity power", 1, 0)>
Public outdoor_ambient_radiosity_power as Single

''' <summary>
''' 
''' </summary>
<TagField("outdoor fog color", 3, 2)>
Public outdoor_fog_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_1 as Byte()

''' <summary>
''' density at opaque distance - 0 defaults to 1
''' </summary>
<TagField("outdoor fog maximum density:[0,1]", 1, 0)>
Public outdoor_fog_maximum_density as Single

''' <summary>
''' below this distance there is no fog
''' </summary>
<TagField("outdoor fog start distance:world units", 1, 0)>
Public outdoor_fog_start_distance as Single

''' <summary>
''' beyond this distance surfaces are completely fogged
''' </summary>
<TagField("outdoor fog opaque distance:world units", 1, 0)>
Public outdoor_fog_opaque_distance as Single

''' <summary>
''' 
''' </summary>
<TagField("indoor fog color", 3, 2)>
Public indoor_fog_color as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_2 as Byte()

''' <summary>
''' density at opaque distance - 0 defaults to 1
''' </summary>
<TagField("indoor fog maximum density:[0,1]", 1, 0)>
Public indoor_fog_maximum_density as Single

''' <summary>
''' below this distance there is no fog
''' </summary>
<TagField("indoor fog start distance:world units", 1, 0)>
Public indoor_fog_start_distance as Single

''' <summary>
''' beyond this distance surfaces are completely fogged
''' </summary>
<TagField("indoor fog opaque distance:world units", 1, 0)>
Public indoor_fog_opaque_distance as Single

''' <summary>
''' used for FOG SCREEN only; not used for planar fog
''' </summary>
<TagField("indoor fog screen", 16, 10)>
Public indoor_fog_screen as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_3 as Byte()

''' <summary>
''' sky_shader_function_block
''' </summary>
<TagField("shader functions", 36, 11)>
Public shader_functions as List(Of SHADER_FUNCTIONS_BLOCK)

''' <summary>
''' sky_animation_block
''' </summary>
<TagField("animations", 36, 11)>
Public animations as List(Of ANIMATIONS_BLOCK)

''' <summary>
''' sky_light_block
''' </summary>
<TagField("lights", 116, 11)>
Public lights as List(Of LIGHTS_BLOCK)
Public Class SHADER_FUNCTIONS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' the global function that controls this shader value
''' </summary>
<TagField("global function name^", 32, 8)>
Public global_function_name as String

End Class
Public Class ANIMATIONS_BLOCK

''' <summary>
''' the index of the animation in the animation graph
''' </summary>
<TagField("animation index", 1, 23)>
Public animation_index as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("period:seconds", 1, 0)>
Public period as Single

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding_1 as Byte()

End Class
Public Class LIGHTS_BLOCK

''' <summary>
''' 
''' </summary>
#Region "LENS FLARE"

''' <summary>
''' 
''' </summary>
<TagField("lens flare", 16, 10)>
Public lens_flare as New TAG_REFERENCE

''' <summary>
''' the lens flare for this light will be attached to the specified marker in the model
''' </summary>
<TagField("lens flare marker name", 32, 8)>
Public lens_flare_marker_name as String

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding as Byte()

''' <summary>
''' these parameters control how the light illuminates the world.
''' </summary>
#End Region
#Region "RADIOSITY"

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' light color
''' </summary>
<TagField("color", 3, 2)>
Public color as Single()

''' <summary>
''' light power from 0 to infinity
''' </summary>
<TagField("power", 1, 0)>
Public power as Single

''' <summary>
''' the length of the ray for shadow testing.
''' </summary>
<TagField("test distance", 1, 0)>
Public test_distance as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_1 as Byte()

''' <summary>
''' direction toward the light source in the sky.
''' </summary>
<TagField("direction", 2, 1)>
Public direction as Single()

''' <summary>
''' angular diameter of the light source in the sky.
''' </summary>
<TagField("diameter", 1, 0)>
Public diameter as Single
#End Region

End Class

End Class
